package kotlincore.chapt02.不一样的类型声明.声明函数返回值类型

class test {
}

fun main() {
    fun sum(x:Int,y:Int):Int{return x +y}

    fun foo(n:Int):Int = if(n ==0) 2 else n*foo(n-1)  //递归函数需显式声明返回类型

    /**
     * 总结
     * 我们可以根据以下问题的提示，来判断是否需要显式声明类型
     * 1,如果它是一个函数的参数? 必须使用
     * 2,如果它是一个非表达式定义的函数? 除了返回Unit，其他情况必须使用
     * 3,如果它是一个递归的函数？ 必须使用
     * 4，如果它是一个公有方法的返回值？ 为了更好的代码可读性及输出类型的可控性，建议使用。
     */
}